﻿using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using DTOMedicalProject;
using System.Text;

namespace BllMedicalRecord
{
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IMedicalRecordBll" in both code and config file together.
    [ServiceContract]
    public interface IMedicalRecordBll
    {
        [OperationContract]
        void DoWork();

#region Mantenimiento Usuario
         /// <summary>
        /// Módulo Administración
        /// Mantenimiento Usuarios
        /// </summary>
        [OperationContract]
        DTORespuesta CrearUsuario(DTOUsuario usrUsuario);

        [OperationContract]
        DTORespuesta ActualizarUsuario(DTOUsuario usrUsuario);

        [OperationContract]
        DTORespuesta EliminarUsuario(DTOUsuario usrUsuario);

        [OperationContract]
        List<DTOUsuario> ObtenerUsuarios();

        [OperationContract]
        DTOUsuario ObtenerUsuarioxId(DTOUsuario usrUsuario);

#endregion

#region Mantenimiento tipo usuario

        /// <summary>
        /// Módulo Administración
        /// Mantenimiento Tipo Usuarios
        /// </summary>

        [OperationContract]
        List<DTOTipoUsuario> ObtenerTipoUsuarios();

        [OperationContract]
        DTORespuesta CrearTipoUsuario(DTOTipoUsuario tpTipoUsuario);

        [OperationContract]
        DTORespuesta ActualizarTipoUsuario(DTOTipoUsuario tpTipoUsuario);

        [OperationContract]
        DTORespuesta EliminarTipoUsuario(DTOTipoUsuario tpTipoUsuario);


#endregion

#region Mantenimiento Tipo Afiliacion

        /// <summary>
        /// Módulo Administración
        /// Mantenimiento Tipo Afiliacion
        /// </summary>

        [OperationContract]
        List<DTOTipoAfiliacion> ObtenerTipoAfiliacion();

        [OperationContract]
        DTORespuesta CrearTipoAfiliacion(DTOTipoAfiliacion tpTipoAfiliacion);

        [OperationContract]
        DTORespuesta ActualizarTipoAfiliacion(DTOTipoAfiliacion tpTipoAfiliacion);

        [OperationContract]
        DTORespuesta EliminarTipoAfiliacion(DTOTipoAfiliacion tpTipoAfiliacion);

#endregion

#region Mantenimiento Perfiles

        /// <summary>
        /// Módulo Administración
        /// Mantenimiento Perfiles
        /// </summary>

        [OperationContract]
        List<DTOPerfil> ObtenerPerfiles();

        [OperationContract]
        DTORespuesta CrearPerfil(DTOPerfil tpPerfil);

        [OperationContract]
        DTORespuesta ActualizarPerfil(DTOPerfil tpPerfil);

        [OperationContract]
        DTORespuesta EliminarPerfil(DTOPerfil tpPerfil);

#endregion

#region Mantenimiento Paises

        /// <summary>
        /// Módulo Administración
        /// Mantenimiento Pais
        /// </summary>


        [OperationContract]
        List<DTOPais> ObtenerPais();

        [OperationContract]
        DTORespuesta CrearPais(DTOPais tppais);

        [OperationContract]
        DTORespuesta ActualizarPais(DTOPais tppais);

        [OperationContract]
        DTORespuesta EliminarPais(DTOPais tppais);

#endregion


    }
}
